package com.own.component.common.util;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;

import java.util.regex.Pattern;

/**
 * FormUtil
 *
 * @author chenxueli
 * @date 2024-03-14 13:37:00
 */
@Slf4j
public class FormUtil {

    /**
     * 匹配URL地址
     *
     * @param url 内容
     * @return boolean
     */
    public static boolean isUrl(String url) {
        if (StringUtils.isBlank(url)) {
            return false;
        }
        return Pattern.compile(url).matcher("^http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$").matches();
    }

    /**
     * 是否是http地址
     *
     * @param url 地址
     * @return 是否是http地址
     */
    public static boolean isHttpUrl(String url) {
        return isUrl(url) && url.startsWith("http://");
    }

    /**
     * 是否是https地址
     *
     * @param url 地址
     * @return 是否是https地址
     */
    public static boolean isHttpsUrl(String url) {
        return isUrl(url) && url.startsWith("https://");
    }

    /**
     * 电话号码验证（只验证11位的长度）
     *
     * @param phone 内容
     * @return boolean
     */
    public static boolean isPhone(String phone) {
        if (phone == null || phone.length() != 11) {
            return false;
        }
        return phone.matches("^[1][0-9]{10}$");
    }

    /**
     * 邮箱信息验证
     *
     * @param email 邮箱信息
     * @return boolean
     */
    public static boolean isEmail(String email) {
        if (StringUtils.isBlank(email)) {
            return false;
        }
        return Pattern.compile(email).matcher("^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$").matches();
    }

}
